///*******************************************************************************
// * Copyright (c) 2008, 2009 Versant Corp. and others.
// * All rights reserved. This program and the accompanying materials
// * are made available under the terms of the Eclipse Public License v1.0
// * which accompanies this distribution, and is available at
// * http://www.eclipse.org/legal/epl-v10.html
// *
// * Contributors:
// * Markus Alexander Kuppe (Versant Corp.) - https://bugs.eclipse.org/248103
// ******************************************************************************/
//
//package org.eclipse.ui.tests.propertysheet;
//
//import java.util.HashMap;
//
//import org.eclipse.core.commands.Command;
//import org.eclipse.core.commands.ExecutionEvent;
//import org.eclipse.core.commands.ExecutionException;
//import org.eclipse.core.expressions.IEvaluationContext;
//import org.eclipse.core.runtime.IAdapterFactory;
//import org.eclipse.core.runtime.Platform;
//import org.eclipse.jface.viewers.StructuredSelection;
//import org.eclipse.ui.IPageLayout;
//import org.eclipse.ui.IViewPart;
//import org.eclipse.ui.PartInitException;
//import org.eclipse.ui.PlatformUI;
//import org.eclipse.ui.commands.ICommandService;
//import org.eclipse.ui.handlers.IHandlerService;
//import org.eclipse.ui.part.IShowInSource;
//import org.eclipse.ui.part.ShowInContext;
//import org.eclipse.ui.tests.SelectionProviderView;
//import org.eclipse.ui.views.properties.PropertySheet;
//import org.eclipse.ui.views.properties.PropertyShowInContext;
//
///**
// * @since 3.5
// *
// */
//public class NewPropertySheetHandlerTest extends AbstractPropertySheetTest {
//
// private TestNewPropertySheetHandler testNewPropertySheetHandler;
//
// public NewPropertySheetHandlerTest(String testName) {
// super(testName);
// }
//
// /*
// * (non-Javadoc)
// *
// * @see
// * org.eclipse.ui.tests.propertysheet.AbstractPropertySheetTest#doSetUp()
// */
// protected void doSetUp() throws Exception {
// super.doSetUp();
// testNewPropertySheetHandler = new TestNewPropertySheetHandler();
// }
//
// private ExecutionEvent getExecutionEvent() {
// IHandlerService handlerService = (IHandlerService) PlatformUI
// .getWorkbench().getService(IHandlerService.class);
// ICommandService commandService = (ICommandService) PlatformUI
// .getWorkbench().getService(ICommandService.class);
// IEvaluationContext evalContext = handlerService.getCurrentState();
// Command command = commandService
// .getCommand(TestNewPropertySheetHandler.ID);
// ExecutionEvent executionEvent = new ExecutionEvent(command,
// new HashMap(), null, evalContext);
// return executionEvent;
// }
//
// /**
// * Test method for
// * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#getShowInContext(org.eclipse.core.commands.ExecutionEvent)}
// * .
// *
// * @throws ExecutionException
// * @throws PartInitException
// * StructuredSelection.EMPTY,
// */
// public final void testGetShowInContextFromPropertySheet()
// throws ExecutionException, PartInitException {
// activePage.showView(IPageLayout.ID_PROP_SHEET);
//
// PropertyShowInContext context = testNewPropertySheetHandler
// .getShowInContext(getExecutionEvent());
// assertNotNull(context);
// assertNull(context.getSelection());
// assertNull(context.getPart());
// assertNull(context.getInput());
// }
//
// /**
// * Test method for
// * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#getShowInContext(org.eclipse.core.commands.ExecutionEvent)}
// * .
// *
// * @throws ExecutionException
// * @throws PartInitException
// */
// public final void testGetShowInContextFromAShowInSource()
// throws ExecutionException, PartInitException {
// IAdapterFactory factory = new IAdapterFactory() {
// public Object getAdapter(Object adaptableObject, Class adapterType) {
// return new IShowInSource() {
// public ShowInContext getShowInContext() {
// return new ShowInContext(StructuredSelection.EMPTY,
// StructuredSelection.EMPTY);
// }
// };
// }
//
// public Class[] getAdapterList() {
// return new Class[] { IShowInSource.class };
// }
// };
// try {
// SelectionProviderView selectionProviderView = (SelectionProviderView) activePage
// .showView(SelectionProviderView.ID);
// selectionProviderView.setSelection(StructuredSelection.EMPTY);
// Platform.getAdapterManager().registerAdapters(factory,
// SelectionProviderView.class);
//
// PropertyShowInContext context = testNewPropertySheetHandler
// .getShowInContext(getExecutionEvent());
// assertNotNull(context);
// assertEquals(StructuredSelection.EMPTY, context.getSelection());
// assertEquals(StructuredSelection.EMPTY, context.getInput());
// assertEquals(selectionProviderView, context.getPart());
// } finally {
// Platform.getAdapterManager().unregisterAdapters(factory);
// }
// }
//
// /**
// * Test method for
// * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#getShowInContext(org.eclipse.core.commands.ExecutionEvent)}
// * .
// *
// * @throws ExecutionException
// * @throws PartInitException
// */
// public final void testGetShowInContextWithNoShowInSource()
// throws PartInitException, ExecutionException {
// SelectionProviderView selectionProviderView = (SelectionProviderView) activePage
// .showView(SelectionProviderView.ID);
// assertFalse(selectionProviderView instanceof IShowInSource);
// assertNull(selectionProviderView.getAdapter(IShowInSource.class));
//
// PropertyShowInContext context = testNewPropertySheetHandler
// .getShowInContext(getExecutionEvent());
// assertNotNull(context);
// assertNull(context.getSelection());
// assertNull(context.getInput());
// assertEquals(selectionProviderView, context.getPart());
// }
//
// /**
// * Test method for
// * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#getShowInContext(org.eclipse.core.commands.ExecutionEvent)}
// * .
// */
// public final void testGetShowInContextWithNoActivePart() {
// try {
// testNewPropertySheetHandler.getShowInContext(getExecutionEvent());
// } catch (ExecutionException e) {
// return;
// }
// fail("Expected ExecutionException due to no active part");
// }
//
// /**
// * Test method for
// * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#findPropertySheet(org.eclipse.core.commands.ExecutionEvent, org.eclipse.ui.views.properties.PropertyShowInContext)}
// * .
// *
// * @throws ExecutionException
// * @throws PartInitException
// */
// public final void testFindPropertySheetWithoutActivePart()
// throws PartInitException, ExecutionException {
// assertNull(PlatformUI.getWorkbench().getActiveWorkbenchWindow()
// .getActivePage().getActivePart());
//
// try {
// testNewPropertySheetHandler.findPropertySheet(getExecutionEvent(),
// new PropertyShowInContext(null, StructuredSelection.EMPTY));
// } catch (ExecutionException e) {
// return;
// }
// fail("Expected ExecutionException due to no active part");
// }
//
// /**
// * Test method for
// * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#findPropertySheet(org.eclipse.core.commands.ExecutionEvent, org.eclipse.ui.views.properties.PropertyShowInContext)}
// * .
// *
// * @throws ExecutionException
// * @throws PartInitException
// */
// public final void testFindPropertySheetWithOtherSheetActive()
// throws PartInitException, ExecutionException {
// propertySheet = (PropertySheet) activePage
// .showView(IPageLayout.ID_PROP_SHEET);
// assertTrue(countPropertySheetViews() == 1);
//
// PropertySheet foundSheet = testNewPropertySheetHandler
// .findPropertySheet(getExecutionEvent(),
// new PropertyShowInContext(propertySheet,
// StructuredSelection.EMPTY));
// assertNotNull(foundSheet);
// assertNotSame(propertySheet, foundSheet);
// assertTrue(countPropertySheetViews() == 2);
// }
//
// /**
// * Test method for
// * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#findPropertySheet(org.eclipse.core.commands.ExecutionEvent, org.eclipse.ui.views.properties.PropertyShowInContext)}
// * .
// *
// * @throws ExecutionException
// * @throws PartInitException
// */
// public final void testFindPropertySheetWithSPVActive()
// throws PartInitException, ExecutionException {
// IViewPart showView = activePage.showView(IPageLayout.ID_PROP_SHEET);
// IViewPart spv = activePage.showView(SelectionProviderView.ID);
// assertTrue(countPropertySheetViews() == 1);
//
// PropertySheet foundSheet = testNewPropertySheetHandler
// .findPropertySheet(getExecutionEvent(),
// new PropertyShowInContext(spv,
// StructuredSelection.EMPTY));
// assertNotNull(foundSheet);
// assertEquals(showView, foundSheet);
// assertTrue(countPropertySheetViews() == 1);
// }
//
// /**
// * Test method for
// * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#findPropertySheet(org.eclipse.core.commands.ExecutionEvent, org.eclipse.ui.views.properties.PropertyShowInContext)}
// * .
// *
// * @throws ExecutionException
// * @throws PartInitException
// */
// public final void testFindPropertySheetWithPinnedPSandSPVActive()
// throws PartInitException, ExecutionException {
// PropertySheet sheet = (PropertySheet) activePage
// .showView(IPageLayout.ID_PROP_SHEET);
// sheet.setPinned(true);
// IViewPart spv = activePage.showView(SelectionProviderView.ID);
// assertTrue(countPropertySheetViews() == 1);
//
// PropertySheet foundSheet = testNewPropertySheetHandler
// .findPropertySheet(getExecutionEvent(),
// new PropertyShowInContext(spv,
// StructuredSelection.EMPTY));
// assertNotNull(foundSheet);
// assertNotSame(sheet, foundSheet);
// assertTrue(countPropertySheetViews() == 2);
// }
//
// /**
// * Test method for
// * {@link org.eclipse.ui.tests.propertysheet.TestNewPropertySheetHandler#findPropertySheet(org.eclipse.core.commands.ExecutionEvent, org.eclipse.ui.views.properties.PropertyShowInContext)}
// * .
// *
// * @throws ExecutionException
// * @throws PartInitException
// */
// public final void testFindPropertySheetWithUnpinnedPSandSPVActive()
// throws PartInitException, ExecutionException {
// PropertySheetPerspectiveFactory.applyPerspective(activePage);
//
// PropertySheet sheet = (PropertySheet) activePage
// .showView(IPageLayout.ID_PROP_SHEET);
// IViewPart showView = activePage.showView(SelectionProviderView.ID);
// PropertyShowInContext context = new PropertyShowInContext(showView,
// StructuredSelection.EMPTY);
// assertTrue(sheet.show(context));
// sheet.setPinned(true);
// assertTrue(countPropertySheetViews() == 1);
//
// PropertySheet foundSheet = testNewPropertySheetHandler
// .findPropertySheet(getExecutionEvent(), context);
// assertNotNull(foundSheet);
// assertEquals(sheet, foundSheet);
// assertTrue(countPropertySheetViews() == 1);
// }
//}